/*
 * $Id: client.prg 2011-12-28 17:26 riztan $
 */

/*
 * Harbour Project source code:
 *    demonstration/test code for alternative RDD IO API, RPC and
 *    asynchronous data streams in NETIO
 *
 * Copyright 2010 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
 * www - http://harbour-project.org
 *
 */
/** \file client.prg
 *  \brief Aplicacion cliente.
 *   Realiza conexion a un Servidor NetIO/Tpuy y realiza algunas acciones con la base de datos.
 *  \date 2011
 *  \author Riztan Gutierrez. <riztan@gmail.com>
 */

/* net:127.0.0.1:2941:topsecret:data/_tst_ */

#include "netio.ch"
#include "common.ch"


#xcommand TRY        => BEGIN SEQUENCE WITH { |e| break( e ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY          => ALWAYS

#define DBSERVER  "localhost"
#define DBPORT    2941
#define DBPASSWD  "topsecret"
#define DBDIR     "data"
#define DBFILE    "_tst_"

/** \brief Procedimiento Principal. 
 * /details Esta aplicación puede ser de tipo GUI.
 * Para el caso de TPuy, la aplicacion puede recibir scripts desde el servidor y
 * ejecutarlos. De esa forma, hay posibilidad de dejar el desarrollo de la vista 
 * en el servidor.
 *
 * \var oQry Representa el objeto oQry en el Servidor Remoto.
 */
procedure main()
   //local nStream1, pConnSock
   local oQry  
   local aAux

   ?
   ? "NETIO_CONNECT():", netio_connect( DBSERVER, DBPORT, , DBPASSWD )
   ?

   // Asi obtenemos el puntero de la conexion.
   //pConnSock:= netio_GetConnection( DBSERVER, DBPORT,,DBPASSWD )
   //? pConnSock

   net:QOUT( "Fecha del Cliente ", Date() )
   
   ? "solicitando ~DbServer:cHost    => ", ~DbServer:cHost

   oQry:= ~DbServer:Query("select * from admconfig.dpmenu")
   
//   ? "Handle para el Objeto: ",roQry,CRLF, ;
//     "ValType() => ", ValType(roQry)

//  ? "--->", ValToPrg( ~~roQry:FillArray() )
?
//   ~DbServer:aQueries := {}

   //? ~DbServer:cHost
   ? REPL("-",20)
   ? "Servidor de Base de Datos: "+hb_eol(), ~Server:cDbServer
   ? REPL("-",20)
   ? "Autor : ", ~Server:cAuthor
   ? REPL("-",20)
 
   aAux := ~DbServer:aQueries
//   AEval( aAux, {|element| qout( ValToPrg( element ))    } )
   ? ValToPrg( ~~oQry:FillArray() )
//? ValToPrg( aAux )
   ? "Consultas en el Servidor: ", Len( aAux )
   
   hb_idleSleep( 2 )
   
   //net:DbInit()

return



//eof
